package mission_tour.solution;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.StringReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserFactory;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ImageView;
import android.widget.TextView;

public class quiz_answer_ok extends Activity implements ServerIp{
    /** Called when the activity is first created. */
	AlertDialog.Builder nologin;
	String[] resultString =null;
	TextView answer_good_text;
    ImageView levelup_character_img;
    ImageView levelup_img;
    TextView quiz_pointget_text;
    int level_count = 0;
    
    Bitmap avatar_img;
	String avatar_link = "";
    MediaPlayer mp;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.quiz_answer_ok);
        
        answer_good_text = (TextView) findViewById(R.id.answer_good_text);
        levelup_character_img = (ImageView) findViewById(R.id.levelup_character_img);
        levelup_img = (ImageView) findViewById(R.id.levelup_img);
        quiz_pointget_text = (TextView) findViewById(R.id.quiz_pointget_text);
        ImageView answer_title = (ImageView)findViewById(R.id.answer_title);
        levelup_img.setVisibility(0x00000004);
        
        if(items.event_list.get(items.quiz_no).getQuiz_type() == 4){
        	answer_title.setImageResource(R.drawable.oxquiz_title);
        	quiz_pointget_text.setText("모든 퀴즈를 맞추셨습니다");
        	answer_good_text.setText(items.event_list.get(items.quiz_no).getQuiz_explanation());
        }else{
        	
        	final ProgressDialog nowloding = ProgressDialog.show(quiz_answer_ok.this,"","서버에 접속 중 입니다....",true);
            answer_title.setImageResource(R.drawable.oxquiz_title);
    		
    		new Thread(new Runnable() {
    			@Override
    			public void run() {
    				URL url = null;
    		        try {
    		        	
    		        	url = new URL(tour_lookback_insert+"?tour_position="+items.event_position+"&app_type="+items.apptype+"&c_code="+items.c_code);
    				
    			        HttpURLConnection http = (HttpURLConnection)url.openConnection();  
    			        
    					BufferedReader in = new BufferedReader(new InputStreamReader(http.getInputStream()));  
    					StringBuffer buffer = new StringBuffer();
    					 
    					int c;
    					
    					while((c=in.read()) != -1){
    						buffer.append((char)c);
    					}
    					
    					resultString= buffer.toString().trim().split(",");
    					
    					nowloding.cancel();
    					
    					level_count = 11-Integer.parseInt(resultString[3].trim());
    					
    					runOnUiThread(new Runnable(){
    			            @Override
    			             public void run() {
    			            	answer_good_text.setText(resultString[2].trim());
    			            	if(resultString[0].trim().equals("1")){
    			            		mp = MediaPlayer.create(quiz_answer_ok.this, R.raw.coin);
    					            mp.start();
    					            
    			            		for(int i=0; i<items.level_up_rank.length;i++){
    			            			if(Integer.parseInt(resultString[3].trim()) == items.level_up_rank[i]){
    				            			levelup_img.setVisibility(0x00000000);
    				            			if(Integer.parseInt(resultString[3].trim()) == 3){
    											if(items.c_sex == 1){
    						            			avatar_link = items.sunbie_avatat_link;
    						            		}else{
    						            			avatar_link = items.dortor_avatat_link;
    						            		}
    										}else if(Integer.parseInt(resultString[3].trim()) == 5){
    											if(items.c_sex == 1){
    						            			avatar_link = items.byungjol_avatat_link;
    						            		}else{
    						            			avatar_link = items.goongnyu_avatat_link;
    						            		}
    										}else if(Integer.parseInt(resultString[3].trim()) == 7){
    											if(items.c_sex == 1){
    						            			avatar_link = items.janggun_avatat_link;
    						            		}else{
    						            			avatar_link = items.wjanggun_avatat_link;
    						            		}
    										}else if(Integer.parseInt(resultString[3].trim()) == 11){
    											if(items.c_sex == 1){
    						            			avatar_link = items.jungjo_avatat_link;
    						            		}else{
    						            			avatar_link = items.joongjun_avatat_link;
    						            		}
    										}
    						            	
    						            	URLConnection conn = null;
    										InputStream is= null;
    										URL imageURL;
    										
    										try {
    							            	
    				        					imageURL = new URL(avatar_link);
    				        					conn = imageURL.openConnection();
    				        					conn.connect();
    				        					is = conn.getInputStream();
    				        		 
    				        					BufferedInputStream bis = new BufferedInputStream(is);
    				        					avatar_img = BitmapFactory.decodeStream(bis);
    				        					bis.close();
    				        					is.close();
    				        					
    				        					levelup_character_img.setImageBitmap(avatar_img);	//링크주소 이미지 뷰에 띄우기
    				        					
    										} catch (MalformedURLException e) {
    				        					// TODO Auto-generated catch block
    				        					e.printStackTrace();
    				        				} catch (IOException e) {
    				        					// TODO Auto-generated catch block
    				        					e.printStackTrace();
    				        				}
    				            		}
    			            		}
    			            		if(level_count == 0){
    			            			quiz_pointget_text.setText(items.event_point_final + " 포인트 획득! 수고 하셨습니다");
    			            		}else{
    			            			quiz_pointget_text.setText(items.event_point_final + " 포인트 획득! 남은 미션 "+level_count+"개");
    			            		}
    							}else{
    								quiz_pointget_text.setText("이미 플레이한 미션입니다");
    							}
    			            	items.event_point_final=0;
    			             }
    			        });
    					
    		        } catch (MalformedURLException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				} catch (IOException e) {
    					// TODO Auto-generated catch block
    					runOnUiThread(new Runnable(){
    			            @Override
    			             public void run() {
    			            	nologin = new AlertDialog.Builder(quiz_answer_ok.this);
    			    			nologin.setTitle(items.appname);
    			    			nologin.setMessage("서버에 접속이 되지 않습니다\n네트워크를 확인 후 다시 시도해 주세요");
    			    			nologin.setIcon(R.drawable.icon);
    			    			nologin.setPositiveButton("확 인", new DialogInterface.OnClickListener(){
    			    				@Override
    			    				public void onClick(DialogInterface dialog, int which) {
    			    					// TODO Auto-generated method stub
    			    					moveTaskToBack(true);
    			    					android.os.Process.killProcess(android.os.Process.myPid());
    			    				}
    			    			});
    			    			nologin.show();
    			             }
    			        });
    					e.printStackTrace();
    				}
    			}
    	    }).start();
        }
        items.quiz_no=0;
        items.event_list.removeAll(items.event_list);
        items.event_called = false;
    }
    public boolean onKeyDown( int KeyCode, KeyEvent event ){
		if( event.getAction() == KeyEvent.ACTION_DOWN ){
			if( KeyCode == KeyEvent.KEYCODE_BACK ){
				items.quiz_no=0;
				
				Intent intent = new Intent(quiz_answer_ok.this, tour_main.class);
				startActivityForResult(intent, 0);
				finish();
				
				return false;
			}
		}
		return super.onKeyDown(KeyCode, event);
	}
    public boolean onCreateOptionsMenu(Menu menu){
    	getMenuInflater().inflate(R.menu.quick, menu);
		return true;   	
    }

    public boolean onOptionsItemSelected(MenuItem item){
    	if(item.getItemId() == R.id.map_go){
    		startActivity(new Intent(this,tour_map.class));
    		finish();
    		return true;
    	}else if(item.getItemId() == R.id.event_go){
    		startActivity(new Intent(this,tour_event_info.class));
    		finish();
    		return true;
    	}else if(item.getItemId() == R.id.myinfo_go){
    		startActivity(new Intent(this,tour_myinfo.class));
    		finish();
    		return true;
    	}else if(item.getItemId() == R.id.coupon_go){
    		startActivity(new Intent(this,tour_coupon.class));
    		finish();
    		return true;
    	}else if(item.getItemId() == R.id.help_go){
    		startActivity(new Intent(this,tour_help.class));
    		finish();
    		return true;
    	}else if(item.getItemId() == R.id.oxquiz_go){
    		items.event_list.removeAll(items.event_list);

    		new Thread(new Runnable() {    
				@Override
				public void run() {
					runOnUiThread(new Runnable(){
						 @Override
						 public void run() {
							 AlertDialog.Builder q_level = new AlertDialog.Builder(quiz_answer_ok.this)
				    			.setTitle(items.appname)
				    			.setMessage("퀴즈 난이도를 선택해 주세요")
				    			.setIcon(R.drawable.icon)
				    			.setPositiveButton("초급", new DialogInterface.OnClickListener(){
				    				@Override
				    				public void onClick(DialogInterface dialog, int which) {
				    					// TODO Auto-generated method stub
				    					final ProgressDialog nowloding = ProgressDialog.show(quiz_answer_ok.this,"","OX 퀴즈를 불러오고 있습니다....",true);
				    			        
				    			        new Thread(new Runnable() {    
				    						@Override
				    						public void run() {				 
				    							try{
				    				    			
				    					    		URL url = null;
				    						        String resultString =null;
				    						  
				    					        	url = new URL(tour_oxquiz_call+"?app_type="+items.apptype+"&q_level="+items.q_level_easy);
				    							
				    					        	HttpURLConnection http = (HttpURLConnection)url.openConnection();  
				    					        	
				    					        	BufferedReader in = new BufferedReader(new InputStreamReader(http.getInputStream()));  
				    					        	StringBuffer buffer = new StringBuffer();
				    								 
				    					        	int z;
				    					        	
				    								while((z=in.read()) != -1){
				    									buffer.append((char)z);
				    								}
				    								
				    								resultString= buffer.toString().trim();
				    								
				    					            XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
				    					            factory.setNamespaceAware(true);
				    					            
				    					            boolean tagok = false;
				    					            
				    					            String[] quiz_call = null;
				    					            
				    					            XmlPullParser xpp = factory.newPullParser();
				    					            xpp.setInput(new StringReader(resultString));
				    					            
				    					            int eventType = xpp.getEventType();
				    					            
				    					            while (eventType != XmlPullParser.END_DOCUMENT) {
				    					                
				    					            	if(eventType == XmlPullParser.START_DOCUMENT) {
				    					                    System.out.println("Start document");
				    					                }
				    					            	
				    					            	if (eventType == XmlPullParser.END_DOCUMENT) {
				    					                    System.out.println("End document");
				    					                }
				    					            	
				    					            	if (eventType == XmlPullParser.START_TAG) {
				    					            		
				    					            		if(xpp.getName().equals("name")){
				    					            			tagok = true;
				    					            		}
				    					                }
				    					            	
				    					            	if (eventType == XmlPullParser.END_TAG) {
				    					                }
				    					            	
				    					            	if (eventType == XmlPullParser.TEXT) {
				    					            		if(tagok){
				    					            			quiz_call = xpp.getText().split(",");
				    					                	}
				    					            		quizs qs = new quizs("",quiz_call[0],"","","","","",Integer.parseInt(quiz_call[1]),0,quiz_call[2],Integer.parseInt(quiz_call[3]));
				    					            
				    					            		items.event_list.add(qs);
				    					                }
				    					                eventType = xpp.next();
				    					            }
				    					            
				    					            nowloding.cancel();
				    					            
				    					            Intent intent = new Intent(quiz_answer_ok.this, tour_oxquiz.class);
				    								startActivityForResult(intent, 0);
				    								finish();
				    					    		
				    							} catch (MalformedURLException e) {
				    								// TODO Auto-generated catch block
				    								e.printStackTrace();
				    							} catch (IOException e) {
				    								// TODO Auto-generated catch block								
				    								runOnUiThread(new Runnable(){
				    						            @Override
				    						             public void run() {
				    						            	AlertDialog.Builder nologin = new AlertDialog.Builder(quiz_answer_ok.this);
				    						    			nologin.setTitle(items.appname);
				    						    			nologin.setMessage("서버에 접속이 되지 않습니다\n네트워크를 확인 후 다시 시도해 주세요");
				    						    			nologin.setIcon(R.drawable.icon);
				    						    			nologin.setPositiveButton("확 인", new DialogInterface.OnClickListener(){
				    						    				@Override
				    						    				public void onClick(DialogInterface dialog, int which) {
				    						    					// TODO Auto-generated method stub
				    						    					moveTaskToBack(true);
				    						    					android.os.Process.killProcess(android.os.Process.myPid());
				    						    				}
				    						    			});
				    						    			nologin.show();
				    						             }
				    						        });
				    							}catch(Exception e){
				    								System.out.println(e.toString());
				    							}
				    						}
				    				    }).start();
				    				}
				    			})
				    			.setNeutralButton("고급", new DialogInterface.OnClickListener(){
				    				@Override
				    				public void onClick(DialogInterface dialog, int which) {
				    					// TODO Auto-generated method stub
				    					final ProgressDialog nowloding = ProgressDialog.show(quiz_answer_ok.this,"","OX 퀴즈를 불러오고 있습니다....",true);
				    			        
				    			        new Thread(new Runnable() {    
				    						@Override
				    						public void run() {				 
				    							try{
				    				    			
				    					    		URL url = null;
				    						        String resultString =null;
				    						  
				    					        	url = new URL(tour_oxquiz_call+"?app_type="+items.apptype+"&q_level="+items.q_level_hard);
				    							
				    					        	HttpURLConnection http = (HttpURLConnection)url.openConnection();  
				    					        	
				    					        	BufferedReader in = new BufferedReader(new InputStreamReader(http.getInputStream()));  
				    					        	StringBuffer buffer = new StringBuffer();
				    								 
				    					        	int z;
				    					        	
				    								while((z=in.read()) != -1){
				    									buffer.append((char)z);
				    								}
				    								
				    								resultString= buffer.toString().trim();
				    								
				    					            XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
				    					            factory.setNamespaceAware(true);
				    					            
				    					            boolean tagok = false;
				    					            
				    					            String[] quiz_call = null;
				    					            
				    					            XmlPullParser xpp = factory.newPullParser();
				    					            xpp.setInput(new StringReader(resultString));
				    					            
				    					            int eventType = xpp.getEventType();
				    					            
				    					            while (eventType != XmlPullParser.END_DOCUMENT) {
				    					                
				    					            	if(eventType == XmlPullParser.START_DOCUMENT) {
				    					                    System.out.println("Start document");
				    					                }
				    					            	
				    					            	if (eventType == XmlPullParser.END_DOCUMENT) {
				    					                    System.out.println("End document");
				    					                }
				    					            	
				    					            	if (eventType == XmlPullParser.START_TAG) {
				    					            		
				    					            		if(xpp.getName().equals("name")){
				    					            			tagok = true;
				    					            		}
				    					                }
				    					            	
				    					            	if (eventType == XmlPullParser.END_TAG) {
				    					                }
				    					            	
				    					            	if (eventType == XmlPullParser.TEXT) {
				    					            		if(tagok){
				    					            			quiz_call = xpp.getText().split(",");
				    					                	}
				    					            		quizs qs = new quizs("",quiz_call[0],"","","","","",Integer.parseInt(quiz_call[1]),0,quiz_call[2],Integer.parseInt(quiz_call[3]));
				    					            
				    					            		items.event_list.add(qs);
				    					                }
				    					                eventType = xpp.next();
				    					            }
				    					            
				    					            nowloding.cancel();
				    					            
				    					            Intent intent = new Intent(quiz_answer_ok.this, tour_oxquiz.class);
				    								startActivityForResult(intent, 0);
				    								finish();
				    					    		
				    							} catch (MalformedURLException e) {
				    								// TODO Auto-generated catch block
				    								e.printStackTrace();
				    							} catch (IOException e) {
				    								// TODO Auto-generated catch block								
				    								runOnUiThread(new Runnable(){
				    						            @Override
				    						             public void run() {
				    						            	AlertDialog.Builder nologin = new AlertDialog.Builder(quiz_answer_ok.this);
				    						    			nologin.setTitle(items.appname);
				    						    			nologin.setMessage("서버에 접속이 되지 않습니다\n네트워크를 확인 후 다시 시도해 주세요");
				    						    			nologin.setIcon(R.drawable.icon);
				    						    			nologin.setPositiveButton("확 인", new DialogInterface.OnClickListener(){
				    						    				@Override
				    						    				public void onClick(DialogInterface dialog, int which) {
				    						    					// TODO Auto-generated method stub
				    						    					moveTaskToBack(true);
				    						    					android.os.Process.killProcess(android.os.Process.myPid());
				    						    				}
				    						    			});
				    						    			nologin.show();
				    						             }
				    						        });
				    							}catch(Exception e){
				    								System.out.println(e.toString());
				    							}
				    						}
				    				    }).start();
				    				}
				    			});
								q_level.show();
						 }
					 });
				}
		    }).start();
    	}
		return false;
    }
}